﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Cofe.Core.Interfaces;
using Cofe.Core.Property;

namespace Cofe.Core
{
    public interface IVolumeRegistrarBehaviorManager : ICofeService
    {
        IVolumeRegistrarGetRootBehavior[] GetRootBehaviors { get; }
        IVolumeChangedBehavior[] VolumeChangedBehaviors { get; }


        /// <summary>
        /// Return a list of root directories's root property provider, by accumulate volume's 
        /// directorylister's GetRootPropertyProviders().
        /// </summary>
        /// <returns></returns>
        IEnumerable<IPropertyHost> GetRootPropertyHosts(EntryConstructionFlags flags);

        /// <summary>
        /// Return a list of root directories.
        /// </summary>
        /// <returns></returns>
        IEnumerable<ICofeDirectoryInfo> GetRootDirectories(EntryConstructionFlags flags);

    }
}
